1. Field of the Invention
The present invention relates to a multi-media data display device, and more specifically to a multi-media display device for defining the display styles of an individual object to be displayed by a function in a one-dimensional or multi-dimensional data space in which multi-media data associated with the object exist and displaying the individual object by independently varying the display styles thereof based on the positional coordinates in the data space.
2. Description of the Related Art
First, three-dimensional viewing commonly used for multi-media data display processing will be briefly described.
Three-dimensional viewing is a process for displaying an individual solid-state display object on a two-dimensional display screen of a display device based on the geometric data specifying the individual object. The geometric data is represented by the positional coordinates of the object in a three-dimensional space.
FIG. 15 is a chart diagrammatically illustrating the process flow executed in the three-dimensional viewing.
As shown in FIG. 15, the three-dimensional viewing roughly includes the following four process steps: a clipping process step (Step S11) with respect to a view volume; a projection process step (Step S12) onto a projection plane; a transformation process step for obtaining a viewport at the normalized coordinates (Step S13); and a transformation process step (Step S14) for obtaining the coordinates for a physical (display) device. Hereinafter, the processes executed in the respective process steps S11 through S14 will be described.
The clipping process step S11 executed with respect to a view volume is a process for specifying,a three-dimensional visible field based on predetermined conditions when the location of a view point and a viewing direction are set (in this specification, the "view point" means a point from which viewer's eyes are turned onto an object and the "viewing direction" means a direction in which the viewer's eyes are turned onto the object). A view volume is selectively defined from such a three-dimensional visible field.
The projection process step S12 is a process step for transforming the points composing an individual object existing within the view volume into the points on a two-dimensional view coordinate space Hv (i.e., a projection plane).
Hereinafter, these process steps will be specifically described.
FIG. 16 is a diagram for illustrating the clipping process with respect to the view volume and the projection process for the objects existing within the view volume. FIG. 16 shows a three-dimensional space in which a plurality of objects exist (such a space will also be referred to as an "object space"). Herein, a "projection" is a process for transforming the points composing a solid-state object in a three-dimensional space into the points on a two-dimensional view coordinate space (i.e., a projection plane).
In FIG. 16, "3D" refers to a three-dimensional viewing coordinate system including x-, y- and z-coordinates and corresponding to the two-dimensional display screen (hereinafter, simply referred to as a "screen") of a physical (display) device. In this 3D coordinate system, the x-axis direction corresponds to a direction extending to the right of the screen, the y-axis direction corresponds to a direction extending to the top of the screen and the z-axis direction corresponds to a direction extending to the depth of the screen. Herein, the coordinates of a view point Ps within the viewing coordinate system (i.e., data access coordinates to be described later) are assumed to specify the coordinates (x0, y0, z0) of the origin of the 3D viewing coordinate system, and the direction in which a viewer looks from the view point Ps into the viewing coordinate system (hereinafter, such a direction will be referred to as a "viewing direction") is assumed to be the z-axis direction of the 3D viewing coordinate system and be represented by a direction vector w (i.e., a data access vector to be described later).
In FIG. 16, when the viewer looks from the view point Ps into the screen along the direction indicated by the direction vector w, five objects OB1 to OB5 are located within a visible field Rs and two more objects OB6 and OB7 are located outside of the visible field Rs. Herein, the visible field Rs is a pyramidshaped spatial domain defined by the one-dot chains in FIG. 16. Since the respective objects OB1 to OB7 exist within the 3D viewing coordinate system, the geometric data specifying an individual object are given by the (x, y, z) coordinates of the points composing the individual object.
In the three-dimensional viewing process, all the objects included within the visible field Rs are not to be displayed. Rather, a process for setting an area including the desired objects to be displayed is required to be performed. Such a process is the above-mentioned clipping process with respect to the view volume in the process step S11.
More specifically, a boundary plane Hf (or a front clipping plane) closer to the viewer and another boundary plane Hb (or a rear clipping plane) more distant from the viewer are set, while assuming the view point Ps as a reference point such that both planes are vertical to the viewing direction indicated by the direction vector w. Then, the objects OB2 to OB4 included within the spatial domain Rv (hereinafter, such a specified domain of the view volume will be referred to as a "view area") interposed between the two clipping planes Hf and Hb within the visible field Rs are selected as the objects to be displayed. It should be noted that the objects OB1 and OB5 are certainly included within the visible field Rs but are excluded from the view area Rv and located outside the view area Rv. Thus, in this case, the objects OB1 and OB5 are not selected as objects to be displayed.
A center projection process producing visual effects similar to those produced by a photographing system or a visual sensing system of a man may be suitably employed as the projection process as one of the process steps of the three-dimensional viewing. Hereinafter, such a center projection will be described.
In this center projection process, first, the view point Ps is assumed to be the center of projection in the visible field Rs shown in FIG. 16. Next, a projection plane (or a view plane) Hv which is distant from the center of projection Ps by a predetermined distance and is vertical to the z-axis is defined. Then, the objects OB2 to OB4 located within the view area Rv are projected onto the projection plane Hv. In other words, this is a process for transforming the points composing the three-dimensional objects OB2 to OB4 located within the view area Rv into the points on a two-dimensional viewing coordinate space (i.e., the projection plane) Hv. This process is accomplished based on a proportional calculation using the specific distances from the center of projection Ps to the points composing the individual object and the distance from the center of projection Ps to the view plane Hv.
Next, the processes executed in the process steps S13 and S14 will be described.
FIG. 17 is a diagram illustrating a process for transforming a point (or a pixel) Phv on the projection plane (or the view coordinate plane) Hv into a pixel Phd on a display screen of a physical device via a point Phs within a viewport Vp on a normalized coordinate plane Hs in the three-dimensional viewing process.
As shown in FIG. 17, first, in the process step S13, a point Phv on the projection plane (or the view coordinate plane) Hv is transformed into a point Phs within the viewport Vp on the normalized coordinate plane Hs. Herein, the viewport Vp is a zone defined as a part of the normalized coordinate plane Hs and has the same aspect ratio as that of the projection plane Hv.
Next, in the process step S14, the point Phs on the normalized coordinate plane Hs is transformed into a point Phd on a physical device coordinate plane Hd, which corresponds to the screen of a display device.
The coordinate transformations performed as the process steps S13 and S14 establishes a correspondence between a point (i.e., the pixel Phv) which has been projected onto the view coordinate plane (or the projection plane) as an integral part of a resulting solid-state object (i.e., a 3D object) and one of the points (i.e., the pixel Phd) composing the display screen of the display device. As a result, a 3D object (or an object having geometric data given by coordinates in a three-dimensional space) can be displayed on the display screen of (the 2D display) of the display device.
Hereinafter, a conventional multi-media data display method for effectively performing a display process on three-dimensional graphics (J. D. Folley, A. van Dam, "Computer Graphics Principles and Practice", 2nd edition, Addison-Wesley Publishers Co., pp. 727-728, 1990) will be briefly described.
Such a method is called a "depth cuing" for controlling the display of graphics. The depth cuing is generally used for effectively enhancing the perspective perception of an object. This is a method for enhancing the perspective perception of an object to be displayed by setting the display color depth of the object depending upon the distance from the view point Ps to the view area where the object is located in the three-dimensional viewing process such that the more distant object is displayed in the lighter color.
Such a depth cuing method controls the display styles of an object based on the view parameters. Thus, the data of the object to be displayed such as geometric data and attributive data is not directly associated with the display control by means of the depth cuing.
As described above, in accordance with a conventional multi-media data display control method, a display control is performed primarily based on a view control, i.e., by setting the visual appearance (or the display styles) of an object in accordance with an individual view area. It is noted that a view area in a three-dimensional space exactly corresponds to the finder of a camera. Thus, controlling an object in accordance with the individual view area corresponds to controlling the imaging state of an object to be photographed based on the light incident from the object by providing a filter for the lens of the camera.
Accordingly, in a conventional display control method, the visual appearance of all the objects located within the view area is determined by the parameters (or the variables) of the view area and the geometric data and the attributive data specifying the objects. For example, if the view point moves, then all the objects (including important ones and unimportant ones) within a view area becomes smaller (or the color thereof becomes lighter) or larger (or the color thereof becomes deeper).
Next, a navigation system will be described as an exemplary specific application of a conventional display control method using the depth cuing.
FIG. 18 is a block diagram illustrating a conventional navigation system. As shown in FIG. 18, the conventional car navigation system includes a car navigator apparatus 500 and a display 540. The car navigator apparatus 500 includes: an object database 530 in which the data of all the objects OB1 through OBn to be displayed by this system are stored; a view variation detector 520 for detecting the variation in view parameters; and a display controller 510 for controlling the display of the objects on the display 540 based on the data stored in the object database 530 in response to the detection output of the view variation detector 520.
In the object database 530, an ID table for all objects 530a (hereinafter, such a table will be simply referred to as an "ID table"), on which the basic data D1 to Dn including the geometric data specifying the shapes and the positions of all the objects OB1 through OBn to be displayed and the attributive data specifying various attributes thereof such as a color are written so as to correspond to all the objects OB1 through OBn, is stored.
The view variation detector 520 includes a view point movement detection section 521 for detecting the movement of the view point position (i.e., in this case, the movement of a car) and a viewing direction detection section 522 for detecting the variation of the viewing direction (i.e., in this case, the variation of the travelling direction of the car).
The display controller 510 includes a data storage section 511 for temporarily storing therein the basic data of the objects to be displayed at a point in time when the car is at a predetermined location and on the point of proceeding in a predetermined direction. In the data storage section 511, a display object table (hereinafter, simply referred to as an "S table") 511a for writing thereon the basic data of the objects so as to correspond to the respective objects has been formed. The display controller 510 further includes a data retrieving section 512 for reading out the basic data of the objects included within the view area Rv (see FIG. 16), i.e., the basic data of the objects to be displayed in accordance with the currently detected location and travelling direction of the car, from the ID table 530a of the object database 530 in accordance with the location of the view point detected by the view point movement detection section 521 and the viewing direction detected by the viewing direction detection section 522, and then writing the basic data onto the S table 511a of the data storage section 511.
The display controller 510 further includes a display data calculation section 513 for calculating the display data I' from the basic data D stored in the S table 511a in accordance with the location and the travelling direction of the car which have been detected by the view variation detector 520, and also includes a display control section 514 for controlling the display of the objects on the display 540 based on the display data I' calculated by the display data calculation section 513.
Next, the operation of the car navigation system will be described.
In this case, a road sign OB2 indicating a speed limit of 100 km/h (hereinafter, simply referred to as a "speed-limit sign") and a road sign OB5 indicating no parking (hereinafter, simply referred to as a "no-parking sign") are employed as the objects to be displayed. A display control operation performed by the car navigation system for displaying these road signs OB2 and OB5 as objects on the display 540 will be described below. FIG. 19 shows the road signs OB2 and OB5 which are displayed on the display 540 in various sizes along the movement of the car and a graph .alpha..sub.0 showing the relationship between the normalized sizes of these road signs and the locations of the car.
In the graph shown in FIG. 19, the axis of the ordinates indicates the size .rho. of the road sign object displayed on the display screen, while the axis of the abscissas indicates the distance x from the reference location (i.e., the origin of the coordinate system) and the current location of the travelling car.
As shown in FIG. 19, when the car is located far away from the spot where the road signs OB2 and OB5 are disposed, these road sign objects are displayed in such small sizes that the sign objects OB2.sub.1 and OB5.sub.1 at this point in time are hardly visible to a viewer. However, as the car comes closer to the spot (i.e., x=2.0) where these road signs are disposed, the sizes of these road sign objects displayed on the display screen gradually increase, i.e., OB2.sub.1 .fwdarw.OB2.sub.2 .fwdarw.OB2.sup.S, and OB5.sub.1 .fwdarw.OB5.sub.2 .fwdarw.OB5.sub.S. Finally, once the car has passed the spot in question, the road sign objects are no longer displayed on the display screen. That is to say, OB2 become OB2.sub.0 and OB5 becomes OB5.sub.0.
Next, a display process for varying the display styles of the road sign objects on the display screen in accordance with the movement of the car will be described.
FIG. 20 is a flow chart illustrating this process flow.
In Step S1, the data retrieving section 512 waits for the movement of the view point position or the variation of the viewing direction to be detected by the view variation detector 520. When the movement of the view point position or the variation of the viewing direction is detected, the data retrieving section 512 updates the S table 511a in the display controller 510.
More specifically, the data retrieving section 512 retrieves the basic data of the objects OB2 and OB5 which have been included within the view area at the point in time from the ID table 530a of the object database 530, writes the basic data onto the S table 511a in the display controller 510 and then eliminates the basic data of the objects which have been excluded from the view area at the point in time from the S table 511a (Step S2).
In the case of performing the display control of the road signs as described with reference to FIG. 19, when the car reaches the location where x=1, the basic data D2 and D5 of the speed-limit sign object OB2 and the no-parking sign object OB5 are written onto the S table 511a as the objects which have been included within the view area and the basic data of the other objects are eliminated from the S table 511a.
Next, the display data calculation section 513 calculates the display data I'2 and I'5 of the objects OB2 and OB5 stored in the S table 511a of the data storage section 511 based on the basic data D2 and D5 thereof, in response to the detection output of the view variation detector 520 (Step S3). More specifically, the display data calculation section 513 determines whether or not there are any objects in the S table 511a of the storage section 511 which are yet to be processed for calculating the display data based on the basic data. If there are any objects in question, then the display data calculation section 513 temporarily retrieves the basic data D of the objects from the S table 511a (Step S3a), produces the display data I' by processing the basic data D by predetermined arithmetic processing (Step S3b) and then writes the display data I' onto the S table 511a. When there no longer exist in the S table 511a any objects yet to be processed for calculating the display data I' based on the basic data D, the display control section 514 provides the display data I'2 and I'5 of the respective objects OB2 and OB5 stored in the S table 511a to the display 540 (Step S4).
As a result, the objects OB2 and OB5 are displayed on the display 540 in accordance with the outputs of the view variation detector 520 at the point in time, i.e., the current location and travelling direction of the car.
For example, in the case of performing the display control of the speed-limit sign object OB2 and the no-parking sign object OB5 shown FIG. 19, the road sign objects OB2 and OB5 are displayed on the display 540 in the variable sizes (i.e., OB2.sub.1 .fwdarw.OB2.sub.2 .fwdarw.OB2.sub.S .fwdarw.OB2.sub.0 and OB5.sub.1 .fwdarw.OB5.sub.2 .fwdarw.OB5.sub.S .fwdarw.OB5.sub.0) corresponding to the outputs of the view variation detector 520, i.e., the locations and travelling directions of the car.
Thereafter, it is determined whether or not the display control is to be continued (Step S5). If it is to be continued, the process by the display controller 510 returns to Step S1. On the other hand, if it is not to be continued, the display controller 510 ends the process.
However, when a display control is performed in accordance with a conventional depth cuing method as in the above-described navigation system, the display styles of an object on the display screen are determined depending upon the view variables, e.g., where the view point is located.
In other words, in accordance with the conventional technologies, a display control corresponding to a specific view area determined by the location of the view point and the like is commonly performed with respect to the objects to be displayed. Thus, it is impossible to independently control the display styles of the individual objects on the display screen.
Therefore, in accordance with the conventional technologies, since the depth cuing control must be performed on the basis of the view area, an independent depth cuing control cannot be applied to an individual object in a specific view area. Consequently, in the example shown in FIG. 19, it is impossible to independently control the display styles (or the display sizes) of the speed-limit sign object OB2 and the no-parking sign object OB5. This means that it is very difficult to simultaneously display a large quantity of multi-media data (or objects) effectively.
In order to eliminate such a disadvantage, a method has been developed for independently controlling the display styles of a plurality of objects displayed on the display screen. According to this suggested method, not only basic data but also a flag are set for each object. Even when an object is located within a view area, it is determined based on the value of the flag thereof whether or not the object is to be displayed.
Hereinafter, such a method will be specifically described as being applied to a case where an object to be displayed is a road sign.
In this case, flags associated with the temperature are set with respect to the individual objects to be displayed. For example, if the objects to be displayed are a speed-limit sign, a no-parking sign and "Slippery when wet" sign (hereinafter, simply referred to as a "slip-sign"), the flag of the slip-sign object is assumed to be "1" when the temperature is 0.degree. C. or lower and to be "0" when the temperature is higher than 0.degree. C. The flags of the other road sign objects are assumed to be always "1" irrespective of the temperature.
For example, assuming that the car is now located at a position within a view area where all of the speed-limit sign, no-parking sign and slip-sign objects exist, all the road sign objects are automatically displayed in the case of the above-described conventional depth cuing control method unless the flags have been set. However, in the case where the flag corresponding to the temperature has been set, when the temperature is higher than 0.degree. C., the value of the flag associated with the slip-sign object is "0", so that only the speed-limit sign object and the no-parking sign object are displayed on the display screen.
However, in this method, the flag set for an object is not defined by a continuous function with respect to the temperature. Generally speaking, in a display control method using such a flag, it is not defined by a continuous function with respect to three-dimensional spatial coordinates and other variables whether or not an object existing in a view area is visible (hereinafter, referred to as "object visibility"). For example, when a flag associated with the object visibility is set, if an object is located within a view area, only the visibility of the object is acknowledged, but the display style of the object is invariable. Thus, since such a flag-based display control is a discontinuous one where the flag has only two values of "0" and "1", it is impossible to continuously vary the display styles of an object directly in accordance with the parameters (including the three-dimensional spatial coordinates thereof) and other variables in a view area.
To sum up, in a conventional multi-media data display device, since the display style (or the visual appearance) of an object on a display screen of a display device is controlled based on the relationship between the basic data of the object (i.e., the geometric data and the attributive data specifying the object) and the parameters in the view area, such a device can perform nothing but a very simple display control in accordance with an individual view area.
On the other hand, even in a display control method based on the logical operations of a flag or the like which has been set for an object, as well as the relationship between the basic data and the parameters in a view area, the independent display control for the individual objects is nothing but a discontinuous simple one relying only on the visibility of each of the objects which is represented as one of the two flag values of "0" and "1". Thus, in accordance with such a conventional method, it is impossible to smoothly and flexibly control the display styles of a plurality of objects displayed on the display screen on an object basis.